isEmpty1(cons2(x, xs)) -> false
isEmpty1(nil) -> true
isZero1(0) -> true
isZero1(s1(x)) -> false
head1(cons2(x, xs)) -> x
tail1(cons2(x, xs)) -> xs
tail1(nil) -> nil
append2(nil, x) -> cons2(x, nil)
append2(cons2(y, ys), x) -> cons2(y, append2(ys, x))
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(s1(0)) -> 0
p1(0) -> 0
inc1(s1(x)) -> s1(inc1(x))
inc1(0) -> s1(0)
addLists3(xs, ys, zs) -> if9(isEmpty1(xs), isEmpty1(ys), isZero1(head1(xs)), tail1(xs), tail1(ys), cons2(p1(head1(xs)), tail1(xs)), cons2(inc1(head1(ys)), tail1(ys)), zs, append2(zs, head1(ys)))
if9(true, true, b, xs, ys, xs2, ys2, zs, zs2) -> zs
if9(true, false, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, true, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs2, ys2, zs)
if9(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs, ys, zs2)
addList2(xs, ys) -> addLists3(xs, ys, nil)
↳ QTRS
↳ DependencyPairsProof
isEmpty1(cons2(x, xs)) -> false
isEmpty1(nil) -> true
isZero1(0) -> true
isZero1(s1(x)) -> false
head1(cons2(x, xs)) -> x
tail1(cons2(x, xs)) -> xs
tail1(nil) -> nil
append2(nil, x) -> cons2(x, nil)
append2(cons2(y, ys), x) -> cons2(y, append2(ys, x))
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(s1(0)) -> 0
p1(0) -> 0
inc1(s1(x)) -> s1(inc1(x))
inc1(0) -> s1(0)
addLists3(xs, ys, zs) -> if9(isEmpty1(xs), isEmpty1(ys), isZero1(head1(xs)), tail1(xs), tail1(ys), cons2(p1(head1(xs)), tail1(xs)), cons2(inc1(head1(ys)), tail1(ys)), zs, append2(zs, head1(ys)))
if9(true, true, b, xs, ys, xs2, ys2, zs, zs2) -> zs
if9(true, false, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, true, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs2, ys2, zs)
if9(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs, ys, zs2)
addList2(xs, ys) -> addLists3(xs, ys, nil)
ADDLISTS3(xs, ys, zs) -> ISZERO1(head1(xs))
ADDLIST2(xs, ys) -> ADDLISTS3(xs, ys, nil)
IF9(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> ADDLISTS3(xs, ys, zs2)
ADDLISTS3(xs, ys, zs) -> IF9(isEmpty1(xs), isEmpty1(ys), isZero1(head1(xs)), tail1(xs), tail1(ys), cons2(p1(head1(xs)), tail1(xs)), cons2(inc1(head1(ys)), tail1(ys)), zs, append2(zs, head1(ys)))
ADDLISTS3(xs, ys, zs) -> INC1(head1(ys))
ADDLISTS3(xs, ys, zs) -> ISEMPTY1(ys)
ADDLISTS3(xs, ys, zs) -> HEAD1(ys)
ADDLISTS3(xs, ys, zs) -> HEAD1(xs)
ADDLISTS3(xs, ys, zs) -> TAIL1(ys)
ADDLISTS3(xs, ys, zs) -> APPEND2(zs, head1(ys))
P1(s1(s1(x))) -> P1(s1(x))
ADDLISTS3(xs, ys, zs) -> TAIL1(xs)
IF9(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> ADDLISTS3(xs2, ys2, zs)
ADDLISTS3(xs, ys, zs) -> ISEMPTY1(xs)
APPEND2(cons2(y, ys), x) -> APPEND2(ys, x)
INC1(s1(x)) -> INC1(x)
ADDLISTS3(xs, ys, zs) -> P1(head1(xs))
isEmpty1(cons2(x, xs)) -> false
isEmpty1(nil) -> true
isZero1(0) -> true
isZero1(s1(x)) -> false
head1(cons2(x, xs)) -> x
tail1(cons2(x, xs)) -> xs
tail1(nil) -> nil
append2(nil, x) -> cons2(x, nil)
append2(cons2(y, ys), x) -> cons2(y, append2(ys, x))
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(s1(0)) -> 0
p1(0) -> 0
inc1(s1(x)) -> s1(inc1(x))
inc1(0) -> s1(0)
addLists3(xs, ys, zs) -> if9(isEmpty1(xs), isEmpty1(ys), isZero1(head1(xs)), tail1(xs), tail1(ys), cons2(p1(head1(xs)), tail1(xs)), cons2(inc1(head1(ys)), tail1(ys)), zs, append2(zs, head1(ys)))
if9(true, true, b, xs, ys, xs2, ys2, zs, zs2) -> zs
if9(true, false, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, true, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs2, ys2, zs)
if9(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs, ys, zs2)
addList2(xs, ys) -> addLists3(xs, ys, nil)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
ADDLISTS3(xs, ys, zs) -> ISZERO1(head1(xs))
ADDLIST2(xs, ys) -> ADDLISTS3(xs, ys, nil)
IF9(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> ADDLISTS3(xs, ys, zs2)
ADDLISTS3(xs, ys, zs) -> IF9(isEmpty1(xs), isEmpty1(ys), isZero1(head1(xs)), tail1(xs), tail1(ys), cons2(p1(head1(xs)), tail1(xs)), cons2(inc1(head1(ys)), tail1(ys)), zs, append2(zs, head1(ys)))
ADDLISTS3(xs, ys, zs) -> INC1(head1(ys))
ADDLISTS3(xs, ys, zs) -> ISEMPTY1(ys)
ADDLISTS3(xs, ys, zs) -> HEAD1(ys)
ADDLISTS3(xs, ys, zs) -> HEAD1(xs)
ADDLISTS3(xs, ys, zs) -> TAIL1(ys)
ADDLISTS3(xs, ys, zs) -> APPEND2(zs, head1(ys))
P1(s1(s1(x))) -> P1(s1(x))
ADDLISTS3(xs, ys, zs) -> TAIL1(xs)
IF9(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> ADDLISTS3(xs2, ys2, zs)
ADDLISTS3(xs, ys, zs) -> ISEMPTY1(xs)
APPEND2(cons2(y, ys), x) -> APPEND2(ys, x)
INC1(s1(x)) -> INC1(x)
ADDLISTS3(xs, ys, zs) -> P1(head1(xs))
isEmpty1(cons2(x, xs)) -> false
isEmpty1(nil) -> true
isZero1(0) -> true
isZero1(s1(x)) -> false
head1(cons2(x, xs)) -> x
tail1(cons2(x, xs)) -> xs
tail1(nil) -> nil
append2(nil, x) -> cons2(x, nil)
append2(cons2(y, ys), x) -> cons2(y, append2(ys, x))
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(s1(0)) -> 0
p1(0) -> 0
inc1(s1(x)) -> s1(inc1(x))
inc1(0) -> s1(0)
addLists3(xs, ys, zs) -> if9(isEmpty1(xs), isEmpty1(ys), isZero1(head1(xs)), tail1(xs), tail1(ys), cons2(p1(head1(xs)), tail1(xs)), cons2(inc1(head1(ys)), tail1(ys)), zs, append2(zs, head1(ys)))
if9(true, true, b, xs, ys, xs2, ys2, zs, zs2) -> zs
if9(true, false, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, true, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs2, ys2, zs)
if9(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs, ys, zs2)
addList2(xs, ys) -> addLists3(xs, ys, nil)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDP
↳ QDP
INC1(s1(x)) -> INC1(x)
isEmpty1(cons2(x, xs)) -> false
isEmpty1(nil) -> true
isZero1(0) -> true
isZero1(s1(x)) -> false
head1(cons2(x, xs)) -> x
tail1(cons2(x, xs)) -> xs
tail1(nil) -> nil
append2(nil, x) -> cons2(x, nil)
append2(cons2(y, ys), x) -> cons2(y, append2(ys, x))
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(s1(0)) -> 0
p1(0) -> 0
inc1(s1(x)) -> s1(inc1(x))
inc1(0) -> s1(0)
addLists3(xs, ys, zs) -> if9(isEmpty1(xs), isEmpty1(ys), isZero1(head1(xs)), tail1(xs), tail1(ys), cons2(p1(head1(xs)), tail1(xs)), cons2(inc1(head1(ys)), tail1(ys)), zs, append2(zs, head1(ys)))
if9(true, true, b, xs, ys, xs2, ys2, zs, zs2) -> zs
if9(true, false, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, true, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs2, ys2, zs)
if9(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs, ys, zs2)
addList2(xs, ys) -> addLists3(xs, ys, nil)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
INC1(s1(x)) -> INC1(x)
POL( INC1(x1) ) = max{0, x1 - 2}
POL( s1(x1) ) = x1 + 3
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
↳ QDP
isEmpty1(cons2(x, xs)) -> false
isEmpty1(nil) -> true
isZero1(0) -> true
isZero1(s1(x)) -> false
head1(cons2(x, xs)) -> x
tail1(cons2(x, xs)) -> xs
tail1(nil) -> nil
append2(nil, x) -> cons2(x, nil)
append2(cons2(y, ys), x) -> cons2(y, append2(ys, x))
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(s1(0)) -> 0
p1(0) -> 0
inc1(s1(x)) -> s1(inc1(x))
inc1(0) -> s1(0)
addLists3(xs, ys, zs) -> if9(isEmpty1(xs), isEmpty1(ys), isZero1(head1(xs)), tail1(xs), tail1(ys), cons2(p1(head1(xs)), tail1(xs)), cons2(inc1(head1(ys)), tail1(ys)), zs, append2(zs, head1(ys)))
if9(true, true, b, xs, ys, xs2, ys2, zs, zs2) -> zs
if9(true, false, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, true, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs2, ys2, zs)
if9(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs, ys, zs2)
addList2(xs, ys) -> addLists3(xs, ys, nil)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDP
P1(s1(s1(x))) -> P1(s1(x))
isEmpty1(cons2(x, xs)) -> false
isEmpty1(nil) -> true
isZero1(0) -> true
isZero1(s1(x)) -> false
head1(cons2(x, xs)) -> x
tail1(cons2(x, xs)) -> xs
tail1(nil) -> nil
append2(nil, x) -> cons2(x, nil)
append2(cons2(y, ys), x) -> cons2(y, append2(ys, x))
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(s1(0)) -> 0
p1(0) -> 0
inc1(s1(x)) -> s1(inc1(x))
inc1(0) -> s1(0)
addLists3(xs, ys, zs) -> if9(isEmpty1(xs), isEmpty1(ys), isZero1(head1(xs)), tail1(xs), tail1(ys), cons2(p1(head1(xs)), tail1(xs)), cons2(inc1(head1(ys)), tail1(ys)), zs, append2(zs, head1(ys)))
if9(true, true, b, xs, ys, xs2, ys2, zs, zs2) -> zs
if9(true, false, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, true, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs2, ys2, zs)
if9(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs, ys, zs2)
addList2(xs, ys) -> addLists3(xs, ys, nil)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
P1(s1(s1(x))) -> P1(s1(x))
POL( P1(x1) ) = max{0, x1 - 3}
POL( s1(x1) ) = x1 + 2
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
isEmpty1(cons2(x, xs)) -> false
isEmpty1(nil) -> true
isZero1(0) -> true
isZero1(s1(x)) -> false
head1(cons2(x, xs)) -> x
tail1(cons2(x, xs)) -> xs
tail1(nil) -> nil
append2(nil, x) -> cons2(x, nil)
append2(cons2(y, ys), x) -> cons2(y, append2(ys, x))
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(s1(0)) -> 0
p1(0) -> 0
inc1(s1(x)) -> s1(inc1(x))
inc1(0) -> s1(0)
addLists3(xs, ys, zs) -> if9(isEmpty1(xs), isEmpty1(ys), isZero1(head1(xs)), tail1(xs), tail1(ys), cons2(p1(head1(xs)), tail1(xs)), cons2(inc1(head1(ys)), tail1(ys)), zs, append2(zs, head1(ys)))
if9(true, true, b, xs, ys, xs2, ys2, zs, zs2) -> zs
if9(true, false, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, true, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs2, ys2, zs)
if9(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs, ys, zs2)
addList2(xs, ys) -> addLists3(xs, ys, nil)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
APPEND2(cons2(y, ys), x) -> APPEND2(ys, x)
isEmpty1(cons2(x, xs)) -> false
isEmpty1(nil) -> true
isZero1(0) -> true
isZero1(s1(x)) -> false
head1(cons2(x, xs)) -> x
tail1(cons2(x, xs)) -> xs
tail1(nil) -> nil
append2(nil, x) -> cons2(x, nil)
append2(cons2(y, ys), x) -> cons2(y, append2(ys, x))
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(s1(0)) -> 0
p1(0) -> 0
inc1(s1(x)) -> s1(inc1(x))
inc1(0) -> s1(0)
addLists3(xs, ys, zs) -> if9(isEmpty1(xs), isEmpty1(ys), isZero1(head1(xs)), tail1(xs), tail1(ys), cons2(p1(head1(xs)), tail1(xs)), cons2(inc1(head1(ys)), tail1(ys)), zs, append2(zs, head1(ys)))
if9(true, true, b, xs, ys, xs2, ys2, zs, zs2) -> zs
if9(true, false, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, true, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs2, ys2, zs)
if9(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs, ys, zs2)
addList2(xs, ys) -> addLists3(xs, ys, nil)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
APPEND2(cons2(y, ys), x) -> APPEND2(ys, x)
POL( APPEND2(x1, x2) ) = max{0, x1 - 2}
POL( cons2(x1, x2) ) = x2 + 3
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
isEmpty1(cons2(x, xs)) -> false
isEmpty1(nil) -> true
isZero1(0) -> true
isZero1(s1(x)) -> false
head1(cons2(x, xs)) -> x
tail1(cons2(x, xs)) -> xs
tail1(nil) -> nil
append2(nil, x) -> cons2(x, nil)
append2(cons2(y, ys), x) -> cons2(y, append2(ys, x))
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(s1(0)) -> 0
p1(0) -> 0
inc1(s1(x)) -> s1(inc1(x))
inc1(0) -> s1(0)
addLists3(xs, ys, zs) -> if9(isEmpty1(xs), isEmpty1(ys), isZero1(head1(xs)), tail1(xs), tail1(ys), cons2(p1(head1(xs)), tail1(xs)), cons2(inc1(head1(ys)), tail1(ys)), zs, append2(zs, head1(ys)))
if9(true, true, b, xs, ys, xs2, ys2, zs, zs2) -> zs
if9(true, false, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, true, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs2, ys2, zs)
if9(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs, ys, zs2)
addList2(xs, ys) -> addLists3(xs, ys, nil)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
IF9(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> ADDLISTS3(xs, ys, zs2)
IF9(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> ADDLISTS3(xs2, ys2, zs)
ADDLISTS3(xs, ys, zs) -> IF9(isEmpty1(xs), isEmpty1(ys), isZero1(head1(xs)), tail1(xs), tail1(ys), cons2(p1(head1(xs)), tail1(xs)), cons2(inc1(head1(ys)), tail1(ys)), zs, append2(zs, head1(ys)))
isEmpty1(cons2(x, xs)) -> false
isEmpty1(nil) -> true
isZero1(0) -> true
isZero1(s1(x)) -> false
head1(cons2(x, xs)) -> x
tail1(cons2(x, xs)) -> xs
tail1(nil) -> nil
append2(nil, x) -> cons2(x, nil)
append2(cons2(y, ys), x) -> cons2(y, append2(ys, x))
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(s1(0)) -> 0
p1(0) -> 0
inc1(s1(x)) -> s1(inc1(x))
inc1(0) -> s1(0)
addLists3(xs, ys, zs) -> if9(isEmpty1(xs), isEmpty1(ys), isZero1(head1(xs)), tail1(xs), tail1(ys), cons2(p1(head1(xs)), tail1(xs)), cons2(inc1(head1(ys)), tail1(ys)), zs, append2(zs, head1(ys)))
if9(true, true, b, xs, ys, xs2, ys2, zs, zs2) -> zs
if9(true, false, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, true, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError
if9(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs2, ys2, zs)
if9(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> addLists3(xs, ys, zs2)
addList2(xs, ys) -> addLists3(xs, ys, nil)